const baseJS = {
	// 获取链接上参数
	getQueryVariable(variable){
		let arr = variable.split("&");   //先通过？分解得到？后面的所需字符串，再将其通过&分解开存放在数组里
		let obj = {};
		for (let i of arr) {
			obj[i.split("=")[0]] = i.split("=")[1];  //对数组每项用=分解开，=前为对象属性名，=后为属性值
		}
		return obj
	},
	setCookie(name, value, exdays) { 
		var str = name + "=" + escape(value); //编码
		if (exdays) {//存在时设定过期时间，否则关闭时cookie自动消失
			var d = new Date();
			d.setTime(d.getTime()+(exdays*24*60*60*1000));
			str += "; expires=" + d.toGMTString();
		}
		document.cookie = str;
	},
	getCookie(name) { 
		var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); 
		if (arr = document.cookie.match(reg)) {
			return unescape(arr[2]); 
		} else {
			return null; 
		}
	},
	delCookie(name) { 	
		var exp = new Date(); 
		exp.setTime(exp.getTime() - 60 * 60 * 1000); 
		var cval = getCookie(name); 
		if (cval != null) {
			document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/"; 
		}
	},
	dateFormat(date, format) {
	  const o = {
	    'M+': date.getMonth() + 1,
	    'd+': date.getDate(),
	    'h+': date.getHours(),
	    'm+': date.getMinutes(),
	    's+': date.getSeconds(),
	    'q+': Math.floor((date.getMonth() + 3) / 3),
	    S: date.getMilliseconds()
	  }
	  let result = format
	  if (/(y+)/.test(result)) {
	    result = result.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
	  }
	  let k = null
	  for (k in o) {
	    if (new RegExp(`(${k})`).test(result)) {
	      result = result.replace(
	        RegExp.$1,
	        RegExp.$1.length === 1 ? o[k] : `00${o[k]}`.substr(`${o[k]}`.length)
	      )
	    }
	  }
	  return result
	},
	// 获取导航栏+状态栏高度
	navheight(){
		let titleHeight = ''
		const res = uni.getSystemInfoSync()
		const system = res.platform
		if (system === 'android') {
			titleHeight = (44 + res.statusBarHeight)
		} else if (system === 'ios') {
			titleHeight = (44 + res.statusBarHeight)
		}
	},
	// 秒转时分
	formateSeconds(endTime){
	    let secondTime = parseInt(endTime)//将传入的秒的值转化为Number
	      let min = 0// 初始化分
	      let h =0// 初始化小时
	      let result=''
	      if(secondTime>60){//如果秒数大于60，将秒数转换成整数
	        min=parseInt(secondTime/60)//获取分钟，除以60取整数，得到整数分钟
	        secondTime=parseInt(secondTime%60)//获取秒数，秒数取佘，得到整数秒数
	        if(min>60){//如果分钟大于60，将分钟转换成小时
	          h=parseInt(min/60)//获取小时，获取分钟除以60，得到整数小时
	          min=parseInt(min%60) //获取小时后取佘的分，获取分钟除以60取佘的分
	        }
	      }
	     result=`${h.toString().padStart(2,'0')}:${min.toString().padStart(2,'0')}:${secondTime.toString().padStart(2,'0')}`
	      return result 
	},
	// 秒转时分
	formateMin(s){
	    // let secondTime = parseInt(endTime)
	    // let min = 0// 初始化分
	    // let result=''
	    // if(secondTime>60){//如果秒数大于60，将秒数转换成整数
	    //   min=parseInt(secondTime/60)//获取分钟，除以60取整数，得到整数分钟
	    //   secondTime=parseInt(secondTime%60)//获取秒数，秒数取佘，得到整数秒数
	    // }
	    // result = min.toString().padStart(2,'0') + ":" + secondTime.toString().padStart(2,'0')
		
		//计算分钟
		//算法：将秒数除以60，然后下舍入，既得到分钟数
		var h;
		h  =   Math.floor(s/60);
		//计算秒
		//算法：取得秒%60的余数，既得到秒数
		s  =   s%60;
		//将变量转换为字符串
		h    +=    '';
		s    +=    '';
		//如果只有一位数，前面增加一个0
		h  =   (h.length==1)?'0'+h:h;
		s  =   (s.length==1)?'0'+s:s;
		return h+':'+s;
	    // return result 
	},
	// 秒转分钟(45:00)
	formMin(time){
		let m = parseInt(time / 60 % 60)
		let s = parseInt(time % 60)
		m = m > 9 ? m : '0' + m
		s = s > 9 ? s : '0' + s
		return `${m}:${s}`
	},
	// 计算字体大小
	sizeDeal (size) {
		const info = uni.getSystemInfoSync()
		let scale = 750 / info.windowWidth;
		// 分离字体大小和单位,rpx 转 px
		let s = Number.isNaN(parseFloat(size)) ? 0 : parseFloat(size)
		let u = size.toString().replace(/[0-9]/g, '').replace('-', '')
		if (u == 'rpx') {
			s /= scale
			u = 'px'
		} else if (u == '') {
			u = 'px'
		} else if (u == 'vw') {
			u = 'px'
			s = s / 100 * 750 / scale
		}
		return [s, u, s + u]
	},
	// 数组去重
	delrepeat(arr, canshu){
		if(canshu){
			let obj = {};
			let peon = arr.reduce((cur,next) => {
				obj[next[canshu]] ? "" : obj[next[canshu]] = true && cur.push(next);
				return cur;
			},[]) //设置cur默认类型为数组，并且初始值为空的数组
			return peon;
		}else {
			let set = new Set(arr);
			return Array.from(set)
		}
	},
	// 秒转日期
	getDateStr(seconds){
	    var date = seconds ? new Date(seconds*1000) : new Date()
		var year = date.getFullYear();
		var month = date.getMonth() + 1;
		var day = date.getDate();
		var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
		var minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
		var second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
		var currentTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
		return currentTime
	},
	// 秒转多久前（适用于im聊天的最后时间）
	getDateDiff(timespan){
		var repTime = timespan.replace(/-/g, '/');
		var dateTime = new Date(Date.parse(repTime)) // 将传进来的字符串或者毫秒转为标准时间
		var year = dateTime.getFullYear()
		var month = dateTime.getMonth() + 1
		var day = dateTime.getDate()
		var hour = dateTime.getHours()
		var minute = dateTime.getMinutes()
		// var second = dateTime.getSeconds()
		var millisecond = dateTime.getTime() // 将当前编辑的时间转换为毫秒
		var now = new Date() // 获取本机当前的时间
		var nowNew = now.getTime() // 将本机的时间转换为毫秒
		var milliseconds = 0
		var timeSpanStr
		milliseconds = nowNew - millisecond
		if (milliseconds <= 1000 * 60 * 1) { // 小于一分钟展示为刚刚
		    timeSpanStr = '刚刚'
		} else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { // 大于一分钟小于一小时展示为分钟
		    timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前'
		} else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { // 大于一小时小于一天展示为小时
		    timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前'
		} else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { // 大于一天小于十五天展示位天
		    timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前'
		} else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year === now.getFullYear()) {
		    timeSpanStr = month + '-' + day + ' ' + hour + ':' + minute
		} else {
		    timeSpanStr = year + '-' + month + '-' + day + ' ' + hour + ':' + minute
		}
		return timeSpanStr
	},
	// 返回当前时间段
	getDateparag(){
		var datetime = new Date()
		if(datetime.getHours() >= 0 && datetime.getHours() < 7){
			return '凌晨'
		} else if (datetime.getHours() >= 7 && datetime.getHours() < 10){
			return '早上'
		} else if (datetime.getHours() >= 10 && datetime.getHours() < 13){
			return '上午'
		} else if (datetime.getHours() >= 13 && datetime.getHours() < 15){
			return '中午'
		} else if (datetime.getHours() >= 15 && datetime.getHours() < 18){
			return '下午'
		} else if (datetime.getHours() >= 18 && datetime.getHours() < 21){
			return '傍晚'
		} else if (datetime.getHours() >= 21 && datetime.getHours() <= 24){
			return '晚上'
		}
	},
	// 返回当前年月日
	getDateCurren(){
		var date = new Date();
		var seperator1 = "-";
		var year = date.getFullYear();
		var month = date.getMonth() + 1;
		var strDate = date.getDate();
		if (month >= 1 && month <= 9) {
			month = "0" + month;
		}
		if (strDate >= 0 && strDate <= 9) {
			strDate = "0" + strDate;
		}
		var currentdate = year + seperator1 + month + seperator1 + strDate;
		return currentdate;
	},
	addZero(time){
		return time < 10 ? '0' + time : time
	},
	// 返回当前年月日时分秒
	getDateCurrentime(){
		var date = new Date();
		var year = date.getFullYear();
		var month = date.getMonth() + 1;
		var strDate = date.getDate();
		var time1 = date.getHours()
		var time2 = date.getMinutes()
		var time3 = date.getSeconds()
		if (month >= 1 && month <= 9) {
			month = "0" + month;
		}
		if (strDate >= 0 && strDate <= 9) {
			strDate = "0" + strDate;
		}
		var currentdate = `${year}-${month}-${strDate} ${baseJS.addZero(time1)}:${baseJS.addZero(time2)}:${baseJS.addZero(time3)}`;
		return currentdate;
	},
	// 保留小数点一位
	clearNoNum(value, num = 2) {
	   value = +value;
	   if(!value) return 0;
	   if(!Number.isInteger(value)) {
		   value = +value.toFixed(num);
	   }
	   return value;
	},
	// 时间格式转时间戳(毫秒)
	getDateSize(data){
		var date = new Date(data);
		// 有三种方式获取
		var time1 = date.getTime();
		return time1
	},
	// 将时间戳转换成日期格式
	timestampToTime(timestamp) {
		const date = new Date(timestamp); // 根据时间戳创建Date对象
		// const year = date.getFullYear(); // 获取年份
		// const month = date.getMonth() + 1; // 获取月份，需要加1
		// const day = date.getDate(); // 获取日期
		// const hour = date.getHours(); // 获取小时
		// const minute = date.getMinutes(); // 获取分钟
		// const second = date.getSeconds(); // 获取秒数

	  // 时间戳为10位需*1000，时间戳为13位不需乘1000
	  // var date = new Date(timestamp * 1000);
	  var Y = date.getFullYear() + "-";
	  var M =
	    (date.getMonth() + 1 < 10
	      ? "0" + (date.getMonth() + 1)
	      : date.getMonth() + 1) + "-";
	  var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
	  // var h = date.getHours() + ":";
	  // var m = date.getMinutes() + ":";
	  // var s = date.getSeconds();
	  // return Y + M + D + h + m + s;
	  return Y + M + D;
	},
	
	// 参数转url
	getParams(params) {
		let paramStr = '';
		Object.keys(params)
			.forEach((item) => {
				if (paramStr === '') {
					paramStr = `${item}=${params[item]}`;
				} else {
					paramStr = `${paramStr}&${item}=${params[item]}`;
				}
			});
		return paramStr;
	},
	// 获取富文本最后一张图片
	stem_last_img(string, flag = 1) {
	    const imgRex =/<img.*?src="(.*?)"[^>]+>/g;
	    let matchResult = string.match(imgRex)
	    matchResult = matchResult ? matchResult[matchResult.length - 1] : ''
	    if (flag == 2) {
	        let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
	        let srcResult = matchResult.match(srcReg);
	        return srcResult ? srcResult[1] : ''
	    }
	
	    return matchResult
	},
	// 判断字符串是否在数组内
	isarrin(item, list){
		var a = list.indexOf(item)
		if(a > -1) return true
		else return false
	}
}
module.exports = baseJS;